package com.yc.springmvc.web;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInterceptor implements HandlerInterceptor {

    // 前置拦截, 返回 false => 不能访问目标资源
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler) throws Exception {
        // 目标资源控制器封装的对象
        System.out.println(handler);
        HttpSession session = request.getSession();
        if(session.getAttribute("username")== null){
            /**
             * / 服务器根目录   127.0.0.1:8080/
             * / 项目根目录     127.0.0.1:8080/xxxxx/
             *
             * 在项目内部(控制器), / 表示的是 项目根目录
             * 在浏览器端         / 表示的是 服务器根目录
             */
            // 应用上下文路径 , 俗称 项目名 springmvc_demo_war_exploded
            String ctxName = request.getServletContext().getContextPath();
            String path = ctxName + "/login.html";
            // 响应重定向
            response.sendRedirect(path);
            return false;
        }
        return true;
    }
}
